<?php
/**
 * @package Joostina BOSS
 * @copyright Авторские права (C) 2008-2010 Joostina team. Все права защищены.
 * @license Лицензия http://www.gnu.org/licenses/gpl-2.0.htm GNU/GPL, или help/license.php
 * Joostina BOSS - свободное программное обеспечение распространяемое по условиям лицензии GNU/GPL
 * Joostina BOSS основан на разработках Jdirectory от Thomas Papin
 */
defined('_VALID_MOS') or die();
if (!defined('BOSS_RBI_LOADED')) {

    define('BOSS_RBI_LOADED', 1);

    class BossRadioButtonImg {
        //отображение поля в категории
        function getListDisplay($directory, $content, $field, $field_values, $itemid, $conf) {
            return $this->getDetailsDisplay($directory, $content, $field, $field_values, $itemid, $conf);
        }

        //отображение поля в контенте
        function getDetailsDisplay($directory, $content, $field, $field_values, $itemid, $conf) {
            $fieldname = $field->name;
            $value = (isset ($content->$fieldname)) ? $content->$fieldname : '';

            $return = '';
            if(!empty($field->text_before))
                $return .= '<span>'.$field->text_before.'</span>';
            if(!empty($field->tags_open))
                $return .= html_entity_decode($field->tags_open);

            for ($i = 0, $nb = count($field_values[$field->fieldid]); $i < $nb; $i++) {
                        $fieldvalue = @$field_values[$field->fieldid][$i]->fieldvalue;
                        $fieldtitle = @$field_values[$field->fieldid][$i]->fieldtitle;
                        if ($value == $fieldvalue) {
                            if ($field->type == 'radio')
                                $return .= $fieldtitle;
                            else
                                $return .= "<img src='" . JPATH_SITE . "/images/boss/$directory/fields/" . $fieldtitle . "' alt='$fieldtitle' />";
                            if(!empty($field->tags_separator) && $i < ($nb-1))
                                $return .= html_entity_decode($field->tags_separator);
                        }
                    }

            if(!empty($field->tags_close))
                $return .= html_entity_decode($field->tags_close);
            if(!empty($field->text_after))
                $return .= '<span>'.$field->text_after.'</span>';

            return $return;
        }

        //функция вставки фрагмента ява-скрипта в скрипт
        //сохранения формы при редактировании контента с фронта.
        function addInWriteScript($field){

        }

        //отображение поля в админке в редактировании контента
        function getFormDisplay($directory, $content, $field, $field_values, $nameform = 'adminForm', $mode = "write") {
            $fieldname = $field->name;
            $value = (isset ($content->$fieldname)) ? $content->$fieldname : '';
            $strtitle = htmlentities(jdGetLangDefinition($field->title), ENT_QUOTES, 'utf-8');

            $k = 0;
                $return = "<table>";
                for ($i = 0; $i < $field->rows; $i++) {
                    $return .= "<tr>";
                    for ($j = 0; $j < $field->cols; $j++) {
                        $return .= "<td>";
                        $fieldvalue = @$field_values[$field->fieldid][$k]->fieldvalue;
                        $fieldtitle = @$field_values[$field->fieldid][$k]->fieldtitle;
                        $fieldtitle = "<img src='" . JPATH_SITE . "/images/boss/" . $directory . "/fields/" . $fieldtitle . "' alt='" . $fieldtitle . "' />";

                        if (isset($field_values[$field->fieldid][$k]->fieldtitle)) {
                            if (($mode == "write") && ($field->required == 1) && ($k == 0))
                                $mosReq = "mosReq='1'";
                            else
                                $mosReq = "";

                            if (($mode == "write") && (($value == $fieldvalue) || ($value == $fieldtitle)))
                                $return .= "<input type='radio' " . $mosReq . " name='" . $field->name . "' mosLabel='" . $strtitle . "' value='" . $fieldvalue . "' checked='checked' />&nbsp;" . $fieldtitle . "&nbsp;\n";
                            else
                                $return .= "<input type='radio' " . $mosReq . " name='" . $field->name . "' mosLabel='" . $strtitle . "' value='" . $fieldvalue . "' />&nbsp;" . $fieldtitle . "&nbsp;\n";
                        }
                        $k++;
                        $return .= "</td>";
                    }
                    $return .= "</tr>";
                }
                $return .= "</table>";

            return $return;
        }

        function onFormSave($directory, $contentid, $field, $isUpdateMode, $itemid) {
            $return = mosGetParam($_POST, $field->name, "");
            return $return;
        }

        function onDelete($directory, $contentid = -1) {
            return;
        }

        function getEditFieldJavaScriptDisable() {
            return;
        }

        function getEditFieldJavaScriptActive() {
            $return  = "disableAll();
                    elem = getObject('divColsRows');
                    elem.style.visibility = 'visible';
                    elem.style.display = 'block';
                    elem = getObject('divImagesValues');
                    elem.style.visibility = 'visible';
                    elem.style.display = 'block';
                    if (elem = getObject('vSelectImages[0]')) {
                        elem.setAttribute('mosReq', 2);
                    }
                    if (elem = getObject('vImagesValues[0]')) {
                        elem.setAttribute('mosReq', 1);
                    }";
            return $return;
        }

        //отображение поля в админке в настройках поля
        function getEditFieldOptions($fieldid, $directory) {
            $return = "";
            return $return;
        }

        //действия при сохранении настроек поля
        function saveFieldOptions($directory, $field) {
            $database = database::getInstance();
            $fieldImagesSelect = $_POST['vSelectImages'];
	        $fieldImagesValues = $_POST['vImagesValues'];
            $j=0;
			$i=0;
			while(isset($fieldImagesSelect[$i])) {
				$fieldName  = $fieldImagesSelect[$i];
				$fieldValue = $fieldImagesValues[$i];
				$i++;

				if(trim($fieldName)!=null && trim($fieldName)!='' && trim($fieldName)!='null') {
					$database->setQuery( "INSERT INTO #__boss_".$directory."_field_values (fieldid,fieldtitle,fieldvalue,ordering)"
							. " VALUES('$field->fieldid','".htmlspecialchars($fieldName)."','".htmlspecialchars($fieldValue)."',$j)"
					);
					if(!$database->loadResult()) echo $database->getErrorMsg();
					$j++;
				}
			}
            //если плагин не создает собственных таблиц а пользется таблицами босса то возвращаем false
            //иначе true
            return false;
        }

        //имя типа поля в выпадающем списке в настройках поля
        function getFieldName() {
            return "Radio Button (Image)";
        }

        //действия при установке плагина
        function install($directory) {
            return;
        }

        //действия при удалении плагина
        function uninstall($directory) {
            return;
        }
        //действия при поиске
        function search($directory,$fieldName) {
            return;
        }
    }
}
$bossPlugins['radioimage'] = new BossRadioButtonImg();
?>